// 安装。
// rustup：curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
// 添加环境。
// export PATH="$HOME/.cargo/bin:$PATH"
// 创建工程。
// cargo new hello
// cd hello
// 编译。
// cargo build
// 运行。
// ./target/debug/hello
// 清理。
// cargo clean
// i8,u8,i16,u16,i32,u32,i64,u64,i128,u128,f32,f64,bool,char,isize,usize.
use std::mem;
fn main() {
    {
        let tmpval : i128 = 2;// 
        println!("[{},{}]val={},size={}", file!(), line!(), tmpval, mem::size_of_val(&tmpval));
    }
    {
        let tmpval : i8 = -76;// 赋值160，直接错误。是否i8和u8有严格的管控？
        println!("[{},{}]val={},size={}", file!(), line!(), tmpval, mem::size_of_val(&tmpval));
        println!("[{},{}]val=0x{:02x},size={}", file!(), line!(), tmpval, mem::size_of_val(&tmpval));
        println!("[{},{}]val={:#02X},size={}", file!(), line!(), tmpval, mem::size_of_val(&tmpval));
    }
    {
        let tmpval : bool = true;
        println!("[{},{}]val={},size={}", file!(), line!(), tmpval, mem::size_of_val(&tmpval));
    }
    {
        let tmpval : char = '1';// 不能赋值数字,只接受字符，并且他是4字节。
        println!("[{},{}]val={},size={}", file!(), line!(), tmpval, mem::size_of_val(&tmpval));
    }
    {
        let tmpval : isize = 123456;// 相当于long类型。
        println!("[{},{}]val={},size={}", file!(), line!(), tmpval, mem::size_of_val(&tmpval));
        println!("[{},{}]val={:p},size={}", file!(), line!(), &tmpval, mem::size_of_val(&tmpval));
    }
}
